package com.MusicWeb.service;

import com.MusicWeb.dao.DB;
import com.MusicWeb.entity.Information;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class InformationService {
    /*
        查询单歌曲的评论
      传入歌曲的id 查询该歌曲的所有的评论
     */
    public List<Information> Select(Integer id) {
        // 调用DB执行sql语句，传入一个参数：ID
        List<Map<String, Object>> result = DB.executeQuery("select * from information where music_id = ?", id);
        List<Information> list = new ArrayList<>();
        if (result != null) {
            for (Map<String, Object> stringObjectMap : result) {
                Information information = new Information();
                information.setId((Integer) stringObjectMap.get("id"));
                information.setName((String) stringObjectMap.get("name"));
                information.setInformation_text((String) stringObjectMap.get("information_text"));
                list.add(information);
            }
        }
        if (list.size() != 0) {
            return list;
        }
        return null;
    }

    /*
    插入单歌曲的评论
    传入歌曲id  用户名字 用户的text
     */
    public Information inster(Information information) {
        try {
            // 根据传入的user对象，执行对应的新增sql
            int a = DB.executeUpdate("insert into information (name, information_text,music_id,user_id) " +
                            " values (?, ?, ?, ?)"
                    , information.getName()
                    , information.getInformation_text()
                    , information.getMusic_id()
                    , information.getUser_id());
            // SQL执行结果为-1，表示有数据库执行错误，返回null
            if (a == -1) {
                return null;
            }
        } catch (Exception e) {
            // 报出异常，插入失败，返回null
            e.printStackTrace();
            return null;
        }
        // 正常情况下返回user对象，表示插入成功
        return information;
    }

    /*
    删除评论
    传入 评论的id
     */
    //TODO: 今天又是摸鱼的一天
    public boolean del(Integer id) {
        try {
            // 根据传入的user对象，执行对应的新增sql
            int a = DB.executeUpdate("delete from information where id = ? "
                    , id);
            // SQL执行结果为-1，表示有数据库执行错误，返回null
            if (a == -1) {
                return false;
            }
        } catch (Exception e) {
            // 报出异常，插入失败，返回null
            e.printStackTrace();
            return false;
        }
        // 正常情况下返回user对象，表示插入成功
        return true;
    }
}
